home *** CD-ROM | disk | FTP | other *** search
/ Enigma Amiga Life 112 / EnigmaAmiga112CD.iso / dalla rivista / l'angolo dell'emulazione / aspv074 / aspreadme.txt < prev    next >
Text File  |  2000-04-06  |  20KB  |  529 lines

  1.                          Amiga SPectrum emulator
  2.                          =======================
  3.                                  V0.74
  4.                                  =====
  5.                         (c) Ian Greenway 1999,2000
  6.                         
  7.  
  8. Introduction:
  9. -------------
  10.  
  11.   This is a Sinclair ZX Spectrum 128K emulator for Amiga computers.  It is
  12.   aimed mainly at those emulation enthusiasts who enjoy old games or demos for
  13.   nostalgic reasons. It is system compliant and multitasks.
  14.   
  15.   ASp is a very easy program to use, but there are a couple of points to be
  16.   aware of.  Please read at least the "Requirements" section of this ReadMe.
  17.   If you have problems, you may find something in the "General Info" section. If
  18.   you are still stuck, email me and I'll try to help.
  19.   
  20.  
  21. Features:
  22. ---------
  23.  
  24.   - 100% system-compliant.
  25.   
  26.   - Multitasks in all modes.
  27.   
  28.   - Font sensitive Gadtools GUI.
  29.   
  30.   - Small, easy to use, authentic emulation of a 48K/128K Sinclair Spectrum.
  31.   
  32.   - Comprehensive speed-regulated Z80 CPU emulation core which includes all
  33.     undocumented instructions and most undocumented flag behaviour.
  34.   
  35.   - Genuine Spectrum-like display with support for BRIGHT and clean FLASH.
  36.   
  37.   - Stabilised stereo sound (48K and AY-3-8912) synched to CPU T-states.
  38.   
  39.   - Direct Kempston joystick support via normal Amiga gameport.
  40.   
  41.  
  42.   See http://www.greew.freeserve.co.uk/ for latest info and updates.        
  43.           
  44.   
  45.  
  46. New For This Version:
  47. ---------------------
  48.  
  49.   Much faster 128K bank switching.
  50.   
  51.   Z80 loader will now accept SLT files (but still wont load the levels).
  52.   
  53.   Reintroduction and enhancement of 68030 speedup mods from V0.71b.
  54.   
  55.   F-key for Reload changed to F6, to prevent "accidents". >:-&
  56.  
  57.   Fixed menu problems.
  58.   
  59.  
  60.     See Version History for all mods.
  61.   
  62.  
  63. Requirements:
  64. -------------
  65.  
  66.   As an absolute minimum you need a 68020 and WB3.0 (V39).
  67.   Native chipset, OCS/ECS/AGA, is required. Gfx cards not supported yet.
  68.   
  69.   About 800Kb fast ram, 100Kb chip ram.
  70.  
  71.    *IMPORTANT:*
  72.  
  73.    You absolutely NEED V41 or above of mmu.library by Thomas Richter, for which
  74.    you will require a working MMU.
  75.    NOTE! :- mmu.library V42 (when released) is recommended for extra speed.
  76.    See General Info section.
  77.    
  78.    You also need the Spectrum128K ROM Image File (32Kb in size).  If it was not
  79.    in this archive, you can download it from various places on the internet,
  80.    including the ASp support page. (See below).
  81.  
  82.  
  83.   To get any sort of realistic performance you will need at least a very fast
  84.   68030.  A 50MHz 68030 runs BASIC at about 85% the speed of a real Spectrum.
  85.   This is adequate for simple games like Manic Miner, JSW, etc. Faster machines
  86.   will automatically regulate their speed so they run the same speed as a real
  87.   Spectrum. Any spare CPU time is available for other tasks in the Amiga system.
  88.   
  89.  
  90. Installation:
  91. -------------
  92.  
  93.   Just copy ASp and the ROM file to any directory you want. You can run ASp from
  94.   the Shell or the Workbench.
  95.   
  96.   You do not need to install the entire of Thomas Richter's MuTools for ASp to
  97.   work.  It is sufficient to simply put "mmu.library" in LIBS:. It is well
  98.   worth looking at the rest of the package though, as it is extremely
  99.   comprehensive.
  100.   
  101.  
  102. How To Use:
  103. -----------
  104.  
  105.   If no GUI appears, there has been some serious initialisation error. Check
  106.   you have enough RAM and all system libraries installed.  Note you need a full
  107.   WB3.0+ (V39+) system.
  108.  
  109.   The GUI contains various (hopefully) self-explanatory gadgets and equivalent
  110.   menu items:
  111.   
  112.    RUN / STOP / RESET:
  113.    
  114.     These start or stop the emulation.  Reset will perform a power-on reset of
  115.     the virtual Spectrum.
  116.    
  117.    LOAD / RELOAD / SAVE:
  118.    
  119.     These allow you to load or save the status of the emulation with "snapshot"
  120.     files.  Supported formats are .Z80 (loads all versions, saves V2+ type) and
  121.     .SNA (also called Mirage, suitable only for 48K mode).
  122.     ReLoad will instantly reset the emulation to the state it was after the last
  123.     successful Load, without having to display the filerequester.
  124.    
  125.    INSERT / EJECT / REWIND:
  126.    
  127.     You can insert or eject a .TAP (tape) file in your virtual tape-deck. This
  128.     is accessed when the Spectrum tries to LOAD from tape.  Rewind will set the
  129.     tape to its beginning without having to reselect it in a filerequester.
  130.  
  131.    Settings Menu:
  132.    
  133.     You can select some options which affect the behaviour of the emulation:
  134.     
  135.      Hardware:
  136.      
  137.      -Reset to 128K mode:
  138.                  When you use the Reset function, this controls if the Spectrum
  139.                  will initialise as a 128K or 48K model. This setting has no
  140.                  effect until you Reset. Loading snapshots of a different mode
  141.                  will override this setting.
  142.  
  143.      -AY chip in 48K mode:
  144.                  A normal 48K Spectrum does not have an AY sound chip. If you
  145.                  deselect this option, ASp will intelligently decide if the
  146.                  program or snapshot is in 48K mode and behave as if the chip
  147.                  were not present.
  148.      
  149.  
  150.      Display Type:
  151.      
  152.      -AGA Custom CList:
  153.                  Select the faster, but less system-friendly AGA-only display.
  154.                  You cannot perform normal Amiga screen operations, but
  155.                  multitasking is maintained.
  156.      
  157.      -OCS System Screen:
  158.                  Select the slower 16-colour system screen option.  You can drag
  159.                  and flip this display as with any other Amiga system screen.
  160.  
  161.  
  162.      Sound:
  163.      
  164.      -Mono:      ASp will only try to allocate one audio channel and mix all
  165.                  sounds into it.
  166.      
  167.      -Stereo ABC:
  168.                  ASp will try to allocate two audio chanels as a stereo pair.
  169.                  Any AY-chip sounds will be played as Left, Middle, Right for
  170.                  the A, B and C channels repsectively. 48K sound is played as
  171.                  middle.
  172.      
  173.      -Stereo ACB:
  174.                  As Stereo ABC, except channel C is played as middle and channel
  175.                  B is Right.
  176.  
  177.  
  178.   You can use any of the Amiga-key menu shortcuts as well as the menu items
  179.   themselves.  In addition, the following keys are provided:
  180.   
  181.   F1  - Load
  182.   F3  - Save
  183.   F6  - ReLoad
  184.   F10 - Reset
  185.   Esc - Stop
  186.  
  187.  
  188.   All the letter and number keys correspond to the equivalent key positions on a
  189.   Spectrum. Cursors, backspace and several symbol keys are functional as
  190.   shortcuts. The Alt keys represent Symbol Shift.  All other combinations
  191.   operate as a normal Spectrum. Eg: Shift-1 is EDIT, Shift-2 is CAPS, etc.
  192.  
  193.   Note, A1200 and some PC-adapter keyboards do not work well with multiple
  194.   simultaneous keypresses.  This is a limitation of the keyboard controller, not
  195.   of ASp.
  196.   
  197.  
  198. Genral Info:
  199. ------------
  200.  
  201.   The following information provides some details and extra information about
  202.   the features of ASp.  You do not need to read this to successfully use ASp,
  203.   but there may be something here if you run into a problem.
  204.  
  205.  
  206. MMU.library:
  207.  
  208.   The MuTools archive and the mmu.library are by Thomas Richter.  ASp only
  209.   requires the "mmu.library" to be copied to your system "LIBS:" directory for
  210.   it to actually work.  For optimum system performance it may be necessary to
  211.   perform a more thorough install of this comprehensive package.
  212.   
  213.   ASp requires at least V41 of mmu.library.  There are new features in V42 which
  214.   will further improve ASp's 128K paging performance, so you are reccommended to
  215.   install it as soon as it is released.
  216.  
  217.  
  218. About the 128K Operation:
  219.  
  220.   The 128K memory paging is done via Thomas Richter's mmu.library.  This should
  221.   mean that ASp will work on any system 68020-68060 which has a fully working
  222.   MMU.  It does however, mean that systems without an MMU can no longer run ASp.
  223.   Hopefully, a future version will drop back to 48K mode if no MMU is available,
  224.   but for now, this one will not run.  Use ASp V0.71b for a 48K-only emulation.
  225.  
  226.   If a program attempts to change the memory paging very often (several thousand
  227.   times per second) ASp may slow down below "real" speed.  As of V0.74 the
  228.   paging speed has been improved by a factor of five with V41 of mmu.library. If
  229.   you use V42 mmu.library, it is three times better again. ie: Fifteen times
  230.   faster than previous ASp releases. (Figures relate to a 68060 CPU).
  231.  
  232.   The memory model of a 128K machine is such that it can be made to behave like
  233.   a 48K machine. You can force this by loading a snapshot which was saved in 48K
  234.   mode, selecting "48 BASIC" from the 128K Spectrum main menu, or by deselecting
  235.   ASp's "Reset to 128K mode" menu option and Resetting the emulation.  Any
  236.   program running can also voluntarily switch itself into 48K mode, but can
  237.   never switch back.  ASp will detect any of these cases and use this to save
  238.   its snapshots in 48K mode or switch off AY sound if required.
  239.   
  240.   The 128K Spectrum has a "shadow screen".  This is emulated, but is not yet
  241.   synchronised with display updates.  Any programs switching between shadow and
  242.   normal screens very rapidly may get flickering or glitching graphics.  This is
  243.   harmless, but can look untidy.
  244.     
  245.   The "Reset to 128K mode" menu item does nothing except determine the type of
  246.   machine which will be emulated on the next Reset.  Changing this setting will
  247.   have no effect on the running program or the files loaded or saved.  In most
  248.   cases you would leave this ON, unless you really needed to reset regularly to
  249.   48K mode.
  250.  
  251.   Regardless of the mode of operation the CPU timings are those of a 48K
  252.   Spectrum (69888 T-states per frame).  This will affect almost nothing, but
  253.   will hopefully be fixed in a future version.
  254.  
  255.  
  256. File Formats:
  257.  
  258.   ASp will load and save Z80 and SNA files.  These are the most popular formats
  259.   found for snapshots.  The SNA, or Mirage, format is suitable only for 48K-type
  260.   information. The Z80 loader will load any Z80 file, but will save Version 2
  261.   files in either 48K or 128K mode as appropriate to the current internal
  262.   status.
  263.   
  264.   ASp will try to guess which format you wish to Save by examining your chosen
  265.   file-extension (".z80" or ".sna")  If it can't decide it will ask. When
  266.   loading files, ASp auto-detects which format to use.
  267.   
  268.   In most cases it is advisable to use the Z80 file format as it is both more
  269.   flexible and produces smaller filesizes.  ASp does not directly support
  270.   externally crunched data files, such as the PowerPacked files that ZXAM
  271.   produces.  You can use some third party transparent file decruncher utility
  272.   to load such files if you wish.
  273.  
  274.   TAP files have only limited support at the moment. Only Loading is allowed,
  275.   saving will have no effect.
  276.   
  277.   The TAP loader patches into the Spectrum's ROM and tries to catch any calls to
  278.   load information from tape.  This means that only programs which use the ROM
  279.   routines will work with the TAP loader.
  280.   
  281.   Note: The SNA format supported here is the 48K one, not the extended 128K one.
  282.   The TAP files are the type used by Gerton Lunter's Z80, not the Warejevo type.
  283.   SLT files (extended Z80 files) will be loaded, but the additional level data
  284.   will not be used.
  285.  
  286.  
  287. Display Options:
  288.  
  289.   The Amiga has some comprehensive display hardware which can be programmed to
  290.   provide a video display that requires considerably less decode overheads than
  291.   a conventional display for this application.  Unfortunately it is very
  292.   difficult, if not impossible, to persuade the Amiga OS to provide this level
  293.   of display hardware flexibility.  This means ASp "takes over" the display in
  294.   this mode.
  295.   
  296.   For the purists who don't like the sound of that, there is a 100% system-
  297.   friendly screen option. It requires up to 8 times longer to update the
  298.   display so may cause a slowdown under some circumstances especially on slower
  299.   machines.  In most applications however, it is fine.
  300.   
  301.   Despite the AGA display being system "unfriendly", it is still entirely
  302.   system compliant according to the official documentation. Neither multitasking
  303.   nor interrupts are affected and all the rest of the program continues to
  304.   operate in the normal system-friendly way.
  305.   
  306.   It is not advisable to run programs in the background that need prompt
  307.   attention, or which themselves may take over the display hardware if you use
  308.   the AGA Custom option.
  309.  
  310.   Neither mode supports border colour stripes.  The border colour is updated
  311.   once per displayed frame only.
  312.  
  313.  
  314. About the Sound:
  315.  
  316.   The basic model of emulation is for a 128K Spectrum.  This includes the AY
  317.   sound chip found in those machines.  I believe the emulation of this chip to
  318.   be the most accurate of any current Amiga emulator. Noise, tones, gating,
  319.   eneveloping and "4-bit-sample" mode all work correctly.
  320.   
  321.   In normal use the 3 AY channels are played as stereo left, centre and right,
  322.   with the 48K sound mixed in as centre.  A real Spectrum has the 48K sound
  323.   much louder, which may be implemented in a later version.  If you are using a
  324.   program which does not have AY sound you may wish to switch off the "Use AY
  325.   in 48K mode" menu item.  This will substantially reduce the time taken for ASp
  326.   to build its sound data, but is unlikely to provide an overall speed increase
  327.   of more than a couple of percent.  This is also a way of forcing a program
  328.   that automatically detects whether to use AY sound to use 48K sound only.
  329.   
  330.   In Mono mode all the sound, AY or otherwise, is mixed into one Amiga audio
  331.   channel.  You can still switch off the AY sound as above.  Mono mode allows
  332.   you to run ASp when the number of available audio channels is limited, or if
  333.   you wish to run more than two copies at once.  Mono also provides a very
  334.   slightly faster sound build than stereo. Again, in real use this is unlikely
  335.   to be significant.
  336.  
  337.   The ASp code directly accesses the sound hardware. This is only done after
  338.   correctly allocating the channel and interrupts in the system-approved way.
  339.   This is the only way I can persuade it to work properly, it should cause no
  340.   problems in a system compliant environment.
  341.  
  342.  
  343. About running multiple copies of ASp:
  344.  
  345.   As of V0.70 it is possible to run as many copies of ASp as you want, limited
  346.   only by system memory.
  347.    
  348.   Every time you ask a copy to RUN the emulation, it will try to allocate audio
  349.   channel(s). ASp will try to steal the channels even if they are in use by
  350.   another program, but can still be blocked. So you have a theoretical maximum
  351.   of four available audio channels allowing a maximum of four emulations running
  352.   simulataneously (in mono mode).  Of course, whether they will all run at top
  353.   speed or with clean sound is another thing altogether. :-) A fast 68060 will
  354.   manage about three simultaneously.
  355.  
  356.  
  357. About the ToolTypes:
  358.  
  359.   You can add tooltypes to ASp's icon which will be read on startup. It doesn't
  360.   matter whether it's started from the WB or CLI.
  361.  
  362.   LOADPATH is the directory the Load and Insert file requester will initially
  363.    open at. Default is nothing, which is the directory from which ASp was run.
  364.  
  365.   SAVEPATH is the directory the Save file requester will initially use. Default
  366.    is "RAM:".
  367.   
  368.   ROMFILE is the directory and filename of the ROM file you want to use. This
  369.    file must be exactly 32768 bytes long. If it isn't a real ROM you will find
  370.    strange things happen!  Defaults to "PROGDIR:Spectrum128.rom".
  371.    
  372.  
  373.  
  374. Other Stuff:
  375. ------------
  376.  
  377.   This program is Freeware. You may freely redistribute the archive in its
  378.   entirety, no files may be added, removed or modified. You may not redistribute
  379.   it for profit. The copyright remains with me, the author. You use this program
  380.   entirely at your own risk. No responsibility is accepted by the author for
  381.   damages caused by this program.
  382.  
  383.  
  384. Contact and Support:
  385. --------------------
  386.  
  387. PLEASE email me with any comments, suggestions or problems you have, at..
  388.  
  389.     iang@ukonline.co.uk
  390.  
  391. There is support available on my website, where you can find the latest version,
  392. program information, the rom file, etc..
  393.  
  394.     http://www.greew.freeserve.co.uk/
  395.  
  396. You may see me around on ArcNET IRC channels as "Laser". Feel free to talk to
  397. me about ASp.
  398.  
  399. Thanks for trying ASp!
  400.  
  401.  
  402. Credits:
  403. --------
  404.  
  405. Various people have been very helpful during the creation of this program.
  406. Thanks and acknowledgments to them all:
  407.  
  408.   Stephen Brookes         Mac Buster
  409.   
  410.   Lee Cook                David Cripps
  411.  
  412.   Martijn van der Heide   Thomas Richter
  413.   
  414.   Mario Sarno             Gerard Sweeney
  415.   
  416.   Everyone on the Spectrum Emulator mailing list.
  417.   
  418.   ..and a load of other ppl who I've forgotten to mention.. ;-)
  419.   
  420.   
  421.   Information from:
  422.   
  423.   A Z80 Workshop Manual - E.A. Parr
  424.   
  425.   MC68030 User's Manual - Motorola
  426.   
  427.   The "TechInfo.doc" from the "Z80" emulator - Gerton Lunter.
  428.   
  429.   The Spectrum Emulator FAQ - Phil Kendall.
  430.   
  431.   Various anonymous documents on the internet.
  432.   
  433.   And my trusty rubber-keyed Spectrum 48K, of course!
  434.   
  435.  
  436.   ---
  437.  
  438.   NewIcon images by Lee Cook. Thanks Lee!
  439.   
  440.   The excellent mmu.library and MuTools by Thomas Richter.
  441.  
  442.   ---
  443.  
  444.  
  445.   ASp has been written from scratch in 680x0 asm using HiSoft's Devpac 3.18.
  446.   Some of the data structures have been created in TurboCalc2 and processed
  447.   using programs I've compiled with VBCC.
  448.   
  449.   Total size of source and data files required to build ASp: Appx 790Kb.
  450.  
  451.  
  452.  
  453. History:
  454. ========
  455.  
  456.   V0.74:  Much faster 128K bank switching.
  457.           Add support for V42 mmu.library.
  458.           Re-introduce 68030 speedups based on ASp V0.71b.
  459.           Z80 loader will load the initial part of a SLT.
  460.           F2 (ReLoad) changed to F6. (Grr!)
  461.           Better error report on init failure.
  462.  
  463.   V0.73dß: Fix: Menus again! Forgot a MENUTOGGLE flag.
  464.  
  465.   V0.73cß: Internal development version.
  466.  
  467.   V0.73bß: Fix: Fixed NewLook menus rendering as black-on-black.
  468.            Fix: If AGA wasn't available, the OCS display was broken!
  469.           
  470.   V0.73ß: Fix: 128K paging.
  471.           Fix: Shadow screen swapping.
  472.           Fix: Glaring major bug in TAP loader.
  473.           Fix: Z80 loader bugs.
  474.           Add: Z80 saver.
  475.           Add: Auto-detect and option for SNA or Z80 save.
  476.           Add: 48K-128K mode switch.
  477.           Add: Menus.
  478.           Add: Stereo sound.
  479.           Add: About function.
  480.           Enhance GUI appearance.
  481.           Speed up sound building.
  482.  
  483.   V0.72ß: Prerelease 128K version.
  484.           Add: 128K paging.
  485.           Add: 128K file loading.
  486.           Add: Lots of bugs. ;^)
  487.  
  488.   V0.71b: Experimental speedup. 5-15% depending.
  489.  
  490.   V0.71:  Fix: Rewrote sound handling. No longer uses audio.device calls.
  491.           Added ToolTypes: LOADPATH, SAVEPATH, ROMFILE.
  492.           Added Reload and Rewind functions.
  493.           Key shortcuts for Load, Save, Reload, Reset.
  494.           System screen now *activates* input!
  495.           Fixed "." on numeric pad.
  496.           Test for AGA chipset.
  497.           Filerequesters are a bit nicer.
  498.           Inactive GUI buttons are ghosted.
  499.           Some potential deadlocks removed.
  500.  
  501.   V0.70:  Speeded up sound routines.
  502.           Now all audio goes through audio.device! 100% system friendly.
  503.           Allows running multiple copies at once. :)
  504.           Add emulation of INI/OUTI/IND/OUTD.
  505.           Generalised i/o port decoding.
  506.  
  507.   V0.69:  Internal Test Version. Added AY-3-8912 sound emulation.
  508.  
  509.   V0.68:  Beta Release only. Limited ".TAP" loading support.
  510.  
  511.   V0.67:  Now has choice of Custom AGA Display or Native System Screen.
  512.           GUI: Added STOP button and Display-Type cycle gadget.
  513.           Can now Load/Save/Reset even if emulator is running.
  514.           Now requires WB3.0 (V39) or above.
  515.           Lee Cook contributed an alternative NewIcon. Thanks!
  516.           
  517.   V0.65-V0.66: Internal.
  518.  
  519.   V0.64:  Interim bugfix release:
  520.           Fixed a nasty enforcer hit in the .SNA loader! Oops! :-)
  521.           Added facility to load ".Z80" files, versions 1, 2 & 3, 48K type only.
  522.  
  523.   V0.63:  Added some error requestors.
  524.           Fiddled around with parts of the source to aid future updates.
  525.   
  526.   V0.62B: Made emulation code more regular at minor cost in speed on '030.
  527.           First public release.
  528.  
  529.